Embodiments of the invention relate to the field of partitioning, and according to one embodiment, a method and apparatus, and system for memory address mapping for sub-socket partitioning.
As modern microprocessors become increasingly faster with growing number of cores, it becomes feasible from a performance viewpoint to run multiple operating systems on the same hardware. This ability opens up many possibilities including Server consolidation and ability to run services Operating Systems in parallel to the main Operating System. Providing this ability can be done either in software or in hardware. In software it is done using virtualization mechanisms by running a Virtual Machine Monitor (VMM) underneath the Operating Systems. However, the present software schemes adversely impact performance for handling system events. The present partitioning hardware schemes partition only down to a socket granularity, hence, this precludes partitioning down to a particular core within the processor or socket.
As previously discussed, different operating systems may operate within the same system. Accordingly, memory may be apportioned between the operating systems, such that each operating system has its own dedicated resources, such as memory, input/output (I/O), memory-mapped hardware configuration information, etc. (generically referred to as “memory address space”).
One prior art technique for managing the memory between two or more operating systems running on one or more processors is to physically separate the memory accessed by each operating system. However, this can cause system cost to increase and may require extra devices or other hardware in a computer system, thereby increasing power consumption of the system.